package fr.afcepf.al22.qualite.dao;

import java.util.List;

import fr.afcepf.al22.qualite.entity.Personne;

/**
 * Fonctionnalités pour la persistence Objet Relationnelle de l'entité {@link Personne} dans la BDD al22.
 * @author Stagiaire
 */
public interface IDaoPersonne {
    /**
     * Ajoute une {@link Personne} dans la table personne de la BDD al22.
     * @param pers La {@link Personne} à ajouter
     * @return
     * <ul>
     * <li>Une {@link Personne} avec un {@link Personne#getId()} != null en cas de succes.</li>
     * <li>Une {@link Personne} avec un {@link Personne#getId()} == null en cas d'echec.</li>
     * </ul>
     */
    Personne ajouter(Personne pers);
    /**
     * Permet de rechercher des {@link Personne} dont le {@link Personne#getNom()}
     * contient le 'nom' transmis en argument.
     * @param nom le nom recherché
     * @return
     * <ul>
     * <li>Une {@link List} remplie de {@link Personne} si la recherche donne des resultats.</li>
     * <li>Une {@link List} vide si la recherche ne renvoie aucun resultats.</li>
     * </ul>
     */
    List<Personne> rechercher(String nom);
    /**
     * Permet de rechercher des {@link Personne} dont le {@link Personne#getMail()}
     * est identique au 'mail' transmis en argument.
     * @param mail le mail recherché
     * @return
     * <ul>
     * <li>Un objet {@link Personne} si la recherche donne un resultat.</li>
     * <li>null si personne ne possède ce mail.</li>
     * </ul>
     */
    Personne verifMail(String mail);
}
